//    PollIT - Tool to make decisions of anything
//    Copyright (C) 2011 Jukka Hell
//
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.

package fi.hell.pollit.domain;

import fi.hell.pollit.util.CookieService;

class User {

    static hasMany = ["votes":Vote];
    static transients = ["fullName"];

    Date dateCreated;
    Date lastUpdated;

    String firstName;
    String lastName;
    String fullName;
    String email;
    String password;
    String ip;

    Locale locale;

    static constraints = {
        firstName	(blank:false);
        lastName	(blank:false);
        email		(blank:false, email:true);
        password	(blank:false);
        votes           (nullable:true);
        ip              (nullable:true, blank:false);
    };

    String toString() {
        return firstName + " " + lastName[0] + ".";
    }

    String getFullName() {
        return firstName + " " + lastName;
    }

    static User getLoggedInUser() {
        String email = CookieService.getCookie('loginCookie');
        if (email) {
            return User.findByEmail(email);
        } else {
            null;
        }
    }
}
